/**
 * 
 * 比较版本号
 * 
 * 描述

牛客项目发布项目版本时会有版本号，比如1.02.11，2.14.4等等
现在给你2个版本号version1和version2，请你比较他们的大小
版本号是由修订号组成，修订号与修订号之间由一个"."连接。1个修订号可能有多位数字组成，修订号可能包含前导0，且是合法的。例如，1.02.11，0.1，0.2都是合法的版本号
每个版本号至少包含1个修订号。
修订号从左到右编号，下标从0开始，最左边的修订号下标为0，下一个修订号下标为1，以此类推。

比较规则：
一. 比较版本号时，请按从左到右的顺序依次比较它们的修订号。比较修订号时，只需比较忽略任何前导零后的整数值。比如"0.1"和"0.01"的版本号是相等的
二. 如果版本号没有指定某个下标处的修订号，则该修订号视为0。例如，"1.1"的版本号小于"1.1.1"。因为"1.1"的版本号相当于"1.1.0"，第3位修订号的下标为0，小于1
三.  version1 > version2 返回1，如果 version1 < version2 返回-1，不然返回0.

数据范围：
1
<
=
v
e
r
s
i
o
n
1.
l
e
n
g
t
h
,
v
e
r
s
i
o
n
2.
l
e
n
g
t
h
<
=
1000
1<=version1.length,version2.length<=1000
version1 和 version2 的修订号不会超过int的表达范围，即不超过 32 位整数 的范围

进阶： 空间复杂度 
O
(
1
)
O(1) ， 时间复杂度 
O
(
n
)
O(n)
 */
public class 比较版本号 {
    
    public static void main(String[] args) {
        // String version1 = "1.1";
        // String version2 = "1.1.1";
        // String version1 = "1.1";
        // String version2 = "1.01";
        // String version1 = "2.0.1";
        // String version2 = "2";
        // String version1 = "0.226";
        // String version2 = "0.36";
        // String version1 = "8.6.2.4";
        // String version2 = "8.6.3";
        String version1 = "0.226";
        String version2 = "0.38";

        System.out.println(compare(version1, version2));

    }

    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 比较版本号
     * @param version1 string字符串 
     * @param version2 string字符串 
     * @return int整型
     */
    public static int compare (String version1, String version2) {
        // write code here

        String s1[] = version1.split("\\.");
        String s2[] = version2.split("\\.");

        int n1 = s1.length;
        int n2 = s2.length;
        int n = Math.max(n1, n2);
        int k1[] = new int[n];
        for (int i = 0; i < s1.length; i++) {
            k1[i] = Integer.valueOf(s1[i]);
        }

        int k2[] = new int[n];
        for (int i = 0; i < s2.length; i++) {
            k2[i] = Integer.valueOf(s2[i]);
        }

        for (int i = 0; i < n; i++) {
            if (k1[i] > k2[i]) {
                return 1;
            } else if (k1[i] < k2[i]) {
                return -1;
            }
        }
        return 0;
    }
}
